# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=graphviz
pkgver=2.44.0
pkgrel=0
pkgdesc="Graph Visualization Tools"
url="https://www.graphviz.org/"
arch="all"
license="EPL-1.0"
_luaver=5.3
depends_dev="zlib-dev libpng-dev libjpeg-turbo-dev expat-dev
	fontconfig-dev libsm-dev libxext-dev cairo-dev pango-dev
	gmp-dev freetype-dev python3-dev"
makedepends="$depends_dev flex swig m4 libtool libxaw-dev bison lua$_luaver-dev
	libltdl tcl autoconf automake bash"
install="$pkgname.pre-deinstall"
triggers="$pkgname.trigger=/usr/lib/graphviz"
subpackages="$pkgname-dev $pkgname-doc py3-gv:_py3 lua$_luaver-$pkgname:_lua
	$pkgname-graphs::noarch"
source="https://gitlab.com/graphviz/graphviz/-/archive/$pkgver/graphviz-$pkgver.tar.gz
	0001-clone-nameclash.patch
	"

prepare() {
	default_prepare
	./autogen.sh NOCONFIG
}

build() {
	CONFIG_SHELL=/bin/bash \
	LIBPOSTFIX=/ \
	LUA=lua$_luaver \
	lua_suffix=$_luaver \
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--sysconfdir=/etc \
		--disable-silent-rules \
		--disable-static \
		--disable-dependency-tracking \
		--disable-ltdl-install \
		--enable-ltdl \
		--enable-sharp=no \
		--enable-go=no \
		--enable-guile=no \
		--enable-java=no \
		--enable-lua=yes \
		--enable-ocaml=no \
		--enable-perl=no \
		--enable-php=no \
		--enable-python=yes \
		--enable-r=no \
		--enable-ruby=no \
		--enable-tcl=no \
		--without-included-ltdl \
		--with-x \
		--with-rsvg=yes \
		--with-pangocairo=yes \
		--with-gdk-pixbuf=yes \
		--with-libgd=no \
		--with-ipsepcola=yes

	if [ "$CARCH" = "x86_64" ]; then
		# the configure script thinks we have sincos. we dont.
		sed -i -e '/HAVE_SINCOS/d' config.h
	fi

	make
}

package() {
	# Install has race conditions...
	make -j1 DESTDIR="$pkgdir" \
		pkgconfigdir=/usr/lib/pkgconfig \
		install

	mkdir -p "$pkgdir"/usr/share/doc
	mv "$pkgdir"/usr/share/graphviz/doc \
		"$pkgdir"/usr/share/doc/graphviz
}

_py3() {
	pkgdesc="Python3 extension for graphviz"
	depends="python3"

	mkdir -p "$subpkgdir"/usr/lib/graphviz \
		"$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/graphviz/python3* \
		"$subpkgdir"/usr/lib/graphviz
	mv "$pkgdir"/usr/lib/python3* "$subpkgdir"/usr/lib/
}

_lua() {
	pkgdesc="Lua$_luaver extension for graphviz"
	provides="lua-$pkgname=$pkgver-r$pkgrel"  # for backward compatibility
	replaces="lua-$pkgname"  # for backward compatibility

	mkdir -p "$subpkgdir"/usr/lib/graphviz \
		"$subpkgdir"/usr/lib/lua
	mv "$pkgdir"/usr/lib/graphviz/lua \
		"$subpkgdir"/usr/lib/graphviz/
	mv "$pkgdir"/usr/lib/lua "$subpkgdir"/usr/lib/lua/$_luaver
}

graphs() {
	pkgdesc="Demo graphs for graphviz"

	mkdir -p "$subpkgdir"/usr/share/graphviz
	mv "$pkgdir"/usr/share/graphviz/graphs \
		"$subpkgdir"/usr/share/graphviz/
}

sha512sums="07e9776fc2fc3b8e17cd4ed6e6f2cd69330d4aa6592a77a39b7b55c4402440096c5eec2918a335c29f32c9f93c6d569b706bf1e503df5914607637bf71c47397  graphviz-2.44.0.tar.gz
aa4cbc341906a949a6bf78cadd96c437d6bcc90369941fe03519aa4447731ecbf6063a0dd0366d3e7aaadf22b69e4bcab3f8632a7da7a01f8e08a3be05c2bc5d  0001-clone-nameclash.patch"
